package com.lsc.study.datastruct;

import com.lsc.study.oop.Student;

import java.util.*;
import java.util.Map.Entry;

public class HashMapDemo {


    public static void main(String[] args) {
        /* ArrayList<Object>    Object  是集合中的每一个元素的数据类型  */
        ArrayList<Object> objects = new ArrayList<>();


        /* HashMap<Integer, String>   <key,value>  */
        HashMap<Integer,String> map = new HashMap<>();
        /* 通过  容器中的  put 方法 想 容器中 存放值 */
        map.put(1, "hanamaki");
        map.put(2, "andy");
        map.put(3, "yutou");
        map.put(4, "jixiang");
        map.put(4, "ruyi");

        System.out.println(map);

        /* 获得 容器的 大小  */
        System.out.println(map.size());

        /* 容器中 通过  指定的 键  取出对应的值 */
        System.out.println(map.get(1));


        /* 如何 遍历 map */
        /* 1. 通过 entrySet 方法  来进行遍历操作 */
        Set<Entry<Integer, String>> entries = map.entrySet();
        /* 将 set 容器进行遍历  */
        for (Entry<Integer, String> entry : entries) {

            System.out.println("map容器中的key：" + entry.getKey() + ";map容器中的value：" + entry.getValue());

        }

        System.out.println("=====================================================");

        /* 第二种方式  通过  键 来取值 */
        Set<Integer> integers = map.keySet();
        for (Integer integer : integers) {
            System.out.println("map容器中的key：" + integer + ";map容器中的value：" + map.get(integer));
        }


        /* 第三种方式  直接 取值 */
        Collection<String> values = map.values();
        for (String value : values) {
            System.out.println(value);
        }
    }
}
